A computer network is a collection of interconnected computing devices that exchange data and share resources. In a packet-based network, such as the Internet, the computing devices communicate data by dividing the data into small blocks called packets. The packets are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to resend only those individual packets that may be lost during transmission.
Certain devices, referred to as routers, maintain routing information that describes routes through the network. A “route” can generally be defined as a path between two locations on the network. Routers include a control plane, sometimes called a management plane, which maintains the routing information, and a forwarding plane, which forwards received packets according to the routing information. The incoming packets may include various types of context information, such as class of service information or post-service firewall operation information.
Network service providers provide services such as security, tunneling, virtual private networks, caching, application proxies, and content delivery network (CDN) services to incoming packets. Service providers also provide content-specific services designed to improve the quality of a user's experience, for example, video streaming. To provide these new services, routers have been modified to include additional hardware or software that applies various services to the incoming packets. For example, line cards installed in a service plane of a router may be configured to perform particular services, such as the services described above.
Conventional approaches to providing such services include building custom hardware blades for a particular router, and clustering multiple routers or servers. Building custom hardware blades can be expensive and time consuming, preventing service providers from quickly deploying hardware that supports new services. Clustering also increases operational costs because it requires many different devices and provides no integration with the router, requiring an administrator to learn about and manage additional devices.